/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src.application.Doppelkopf;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Frame zum Anzeigen der Spielregeln
 * @author schroedtert
 */
public class HilfeFrame extends javax.swing.JFrame {

    /**
     * Creates new form HilfeFrame
     */
    public HilfeFrame() 
    {   
        initComponents();
        txtHilfe.setEditable(false);
        txtHilfe.setLineWrap(true);
        txtHilfe.setWrapStyleWord(true);
        
        String hilfe="Grundlagen \n" +
"1. Ob nun Fehlfarbe oder Trumpf angespielt (= erste Karte eines Stichs) wurde, es muss grunds�tzlich bedient werden. Nur wenn dies auf Grund des Blattes nicht m�glich ist, kann abgeworfen (eine andere Fehlfarbe (bei aufgespieltem Fehl)) oder gestochen werden (ein Trumpf). Bei zwei gleichen Karten innerhalb eines Stichs, hat immer die zuerst gespielte Karte den h�heren Rang (\"liegt oben\"). \n" +
" \n" +
"2. Doppelkopf wird mit einem doppelten Kartensatz gespielt, jede Karte ist also zweimal vorhanden. Alle Karten ab der Neun werden entfernt, es bleiben 40 Karten die zusammen genau 240 Punkte (Augen) z�hlen. \n" +
" \n" +
"3. Bis auf die Soli ist Doppelkopf ein Spiel zwei gegen zwei. Die Partner werden in jeder Runde erneut duch die zuf�llige Verteilung der Karten festgelegt: die beiden Spieler mit einer Kreuz Dame (Re-Partei) spielen zusammen gegen die Kontra-Partei. Zun�chst kennt kein Spieler seinen Partner  (Ausnahme Re/Kontra oder Solo angesagt). Dies �ndert sich erst im Verlauf des Spieles. \n" +
" \n" +
"4. Der Spieler an der linken Seite des Gebers beginnt das Spiel. Die Re-Partei gewinnt das Spiel mit 121 Punkten (die Kontrapartei gewinnt mit 120 Punkten). \n" +
" \n" +
" \n" +
"Kartenreihenfolge (alle Karten doppelt): \n" +
"Tr�mpfe: \n" +
"                1.Herz Zehn                         \n" +
"                2.Kreuz Dame (Alten) \n" +
"                3.Pik Dame \n" +
"                4.Herz Dame \n" +
"                5.KaroDame        \n" +
"                6.Kreuz Bube (Karlchen) \n" +
"                7.Pik  Bube \n" +
"                8.Herz  Bube \n" +
"                9.Karo Bube \n" +
"               10.Karo As (Fuchs) \n" +
"               11.Karo Zehn \n" +
"               12.Karo K�nig \n" +
"Fehl: \n" +
"   Kreuz/Pik: \n" +
"                1. Ass \n" +
"                2. Zehn \n" +
"                3. K�nig \n" +
"   Herz: \n" +
"                1. Ass \n" +
"                2. K�nig \n" +
" \n" +
"Vorbehalte/Soli: \n" +
"	- Trumpfabgabe: \n" +
"Ein Spieler hat drei oder weniger Tr�mpfe (vier Tr�mpfe, wenn ein KaroAss dabei ist auf der Hand). Er kann diese Karten verdeckt im Uhrzeigersinn weiter geben. M�chte ein Spieler die Karten aufnehmen, nimmt er sie auf und gibt dem gebenden Spieler genauso viele Karten zur�ck, wie er bekommen hat. Dabei sollte er nat�rlich alle seine Fehlkarten mit abgeben. Er muss ansagen ob bei diesen Karten min. eine Trumpfkarte dabei war. Der aufnehmende Spieler spielt automatisch mit dem gebendem Spieler zusammen (Re). \n" +
"\n	 - Hochzeit: \n" +
"Ein Spieler mit zwei Kreuz Damen kann \"Hochzeit\" ansagen. Wer der Partner ist, kann auf verschiedene Weise festgelegt werden. Wenn nach drei Stichen kein Partner ermittelt wurde, oder der Spieler die Hochzeit nicht bekannt gibt (Stille Hochzeit), so spielt er einen Trumpf (Karo) Solo.  \n" +
"	- Erster (oder zweiter) fremder Trumpf: Der Partner ist derjeniger, der den x. Stich gewinnt, dessen erste Karte ein Trumpf ist. \n" +
"	- Erster (oder zweiter) fremder Fehl: Der Partner ist derjeniger, der den x. Stich gewinnt, dessen erste Karte ein Fehl ist\n" +
"	- Erster (oder zweiter) fremder Stich: Der Partner ist derjeniger, der den x. Stich gewinnt.\n" +
"Vorsicht! Wurde beim \"zweiten fremden Fehl bzw. Trumpf\" zweimal Trumpf bzw. Fehl aufgespielt, spielt man automatisch einen Solo. Alle Ansagen (Re, Contra, ...) verschieben sich: Ab dem Kl�rungsstich werden neunte, 13., etc. Karte gez�hlt, sodass man erst viel sp�ter ansagen kann. \n" +
"\n 	- Damen Solo: \n" +
"Nur die acht Damen sind Trumpf. Alle Fehlfarben in der Reihenfolge As, Zehn, K�nig, Bube. \n" +
"\n	 - Buben Solo: \n" +
"Nur die acht Buben sind Trumpf. Alle Fehlfarben in der Reihenfolge As, Zehn, K�nig, Dame. \n" +
"\n	 - Trumpf Solo: \n" +
"Jede der 4 Farben kann als Trumpf Solo angesagt werden. Beim Karo Solo bleibt alles beim Alten; bei den anderen 3 Fehlfarben werden die 4 Karos durch die gew�hlte Fehlfarbe ausgetauscht. Die Herz Zehn bleibt immer der h�chste Tr�mpf, mit der Konsequenz, dass beim Herz Solo zwei Tr�mpfe weniger im Spiel sind. Als \"Schweinchen\" z�hlen dann die Asse in der angesagten Trumpf-Farbe. \n" +
"\n	 - Fleischlos Solo: \n" +
"Keine Farbe ist Trumpf. Das bedeutet, dass alle Karten einsortiert werden und jeweils die h�chste Karte der aufgespielten Farbe den Stich bekommt. Kartenreihenfolge pro Farbe:  .Ass , Zehn, K�nig , Dame , Bube \n" +
"\n	 - Schmei�en: \n" +
"Sollte ein Spieler auf seiner Hand Karten haben, die min. ein Kriterium erf�llen, darf er ein Neugeben verlangen: \n" +
"   1. mehr als 80. Punkte \n" +
"   2. min. 5 K�nige \n" +
"   3. H�chster Trumpf KaroAss \n" +
"\n	 - Schweinchen: \n" +
"Sollte ein Spieler beide KaroAss auf der Hand haben, muss er Schweinchen ansagen (ausnahme Buben, Damen Soli). Sollte ein Farbsolo gespielt werden, gilt das Trumpfass. Schweinchen bedeutet folgende Kartenreihenfolge bei den Tr�mpfen: Karo Ass (Schweinchen) , Herz Zehn, Kreuz Dame (Alten) , Pik Dame , Herz Dame , KaroDame, Kreuz Bube (Karlchen) , Pik  Bube , Herz  Bube , Karo Bube , Karo Zehn , Karo K�nig \n" +
"  \n" +
"Auswertung: \n" +
"Nur der Sieger erh�lt Pluspunkte. \n" +
"Sieger: \n" +
" - Re-Partei mit min. 121 Punkten \n" +
" - Contra-Partei mit min. 120 Punkten \n" +
" - es sei denn Grenzen wurden angesagt! \n" +
"Sonderpunkte: \n" +
" - Ansagen: \n" +
"Re wird von Spielern die eine Kreuz Dame, und Kontra von denen die keine Kreuz Dame in ihrem Blatt halten, angesagt. Re und Kontra verdoppeln beide die Spielpunkte. Diese Ansagen d�rfen bis zur neunten ausgespielten Karte get�tigt werden. Nur dann, wenn Re oder Kontra angesagt wurde, sind weitere Ansagen m�glich: \n" +
"		\"Keine 90\" - bis zur 13. ausgespielten Karte \n" +
"		\"Keine 60\" - bis zur 17. ausgespielten Karte \n" +
"		\"Keine 30\" - bis zur 21. ausgespielten Karte \n" +
"		\"Keine 0 (Schwarz)\" - bis zur 25. ausgespielten Karte \n" +
"	Im Falle einer Hochzeit, dient der Kl�rungsstich als Startpunkt f�r Re / Kontra, die weitern Ansagen (Keine 90, 60 ...) folgen dann entsprechend. Ansagen m�ssen immer auffeinanderfolgend gesagt werden, man darf nicht mit z.B. \"Keine 90\" einsteigen. \n" +
" - Karlchen: \n" +
"	Letzter Stich mit dem Kreuz Buben \n" +
" - Fuchs gefangen: \n" +
"	Karo Ass der Gegenpartei ist in einem der gewonnen Stiche \n" +
" - Fuchs am End: \n" +
"	Karo Ass der Gegenpartei wird im letzten Stich gewonnen \n" +
" - Doppelkopf: \n" +
"	Stich mehr als 40 Punkte \n" +
" - HerzZehn �ber HerzZehn: \n" +
"	Zweite HerzZehn geht �ber die erste, und f�ngt diese. \n" +
"Alle Sonderpunkte z�hlen +1. Re/Kontra verdoppeln jeweils am Ende alle Punkte. Punkte, die die Verlierer erzielen, werden von den Gewinnerpunkten abgezogen. Jede nicht erreichte Stufe (121/120, 90, 60, 30, 0 Punkte) durch die Gegner z�hlt ebenfalls einen Punkt.\n" +
"";
            txtHilfe.setText(hilfe);
            txtHilfe.setCaretPosition(0);
       
        
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        txtHilfe = new javax.swing.JTextArea();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        txtHilfe.setColumns(20);
        txtHilfe.setRows(5);
        jScrollPane1.setViewportView(txtHilfe);

        jButton1.setText("Ok");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING)
            .addGroup(layout.createSequentialGroup()
                .addGap(178, 178, 178)
                .addComponent(jButton1)
                .addContainerGap(177, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 283, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton1)
                .addGap(0, 2, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        dispose();
    }//GEN-LAST:event_jButton1ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea txtHilfe;
    // End of variables declaration//GEN-END:variables
}
